iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
Software Development

從Java進入AWS部署RESTful API的心路歷程系列 第 22

Day22-概論(十一)DynamoDBMapper Class

  • 分享至 

  • xImage
  •  

Java:DynamoDBMapper

之前提到AWS SDK提供的第三種介面「物件持久性界面」,處理操作項目存取的則為DynamoDBMapper Class,所以我們先來很快的看一下有什麼東西。

DynamoDBMapper Class

DynamoDBMapper Class

因為物件持久性介面核心設計為針對以物件存取項目,在SDK for JAVA提供的相關method就是以操作POJO為主。針對CRUD目的來看,直接操作POJO且也是唯一必要參數的方法有

  • load - Read Item
  • save - Create or Update Item
  • delete - Delete Item

在作業方法上又另外提供

  • batch系列 - 一次操作多個項目,可對應多個資料表,但是不支援樂觀鎖定
    • batchLoad
    • batchSave
    • batchDelete
    • batchWrite - 提供同時操作save&delete
  • transaction系列 - 提供交易作業方法操作項目
    • transactionLoad
    • transactionWrite - 提供同時操作save&delete

其他方法則有

  • query - 以索引查詢項目
  • queryPage - 以索引查詢一頁回傳(1MB)項目
  • scan - 掃描查詢項目
  • parallelScan - 平行作業方式掃描項目
  • scanPage - 掃描查詢回傳(1MB)項目
  • count - 僅回傳項目個數
  • generateCreateTableRequest - 依POJO產生資料表建立
  • marshallIntoObject - 將query&scan取得的Map內容轉換成object的方法
  • createS3Link - 產生S3連結
  • getS3ClientCache - 取得AmazonS3Client 物件的智慧映射

所以DynamoDBMapper設計至少是提供以下目的

  • 以包含必要的DynamoDB描述POJO實體進行項目操作
  • 條件查詢項目後以POJO承接資料
  • 條件查詢項目後以Map承接資料

支援的資料類型

https://ithelp.ithome.com.tw/upload/images/20191003/20120911LIsGg2FLnG.png

  • DynamoDB Attribute資料包含項目是否存在該屬性的狀態,可對應POJO field assign NULL,但是Nonullable型態則無法完全應對,如數值型態、布林值等。

上一篇
Day21-實作(六)對DynamoDB進行CRUD
下一篇
Day23-概論(十二)DynamoDB 的 Java 註釋
系列文
從Java進入AWS部署RESTful API的心路歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言